package com.guocheng.modules.login.service;

import com.guocheng.base.BaseService;
import com.guocheng.modules.login.mapper.RoleDao;
import com.guocheng.modules.login.model.po.Role;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

@Service
public class RoleService extends BaseService<RoleDao, Role> {

    /**
     * 根据用户id查询角色信息
     * @return
     */
    public List<Role> selectByUserId(Integer id){
        return baseDao.selectByUserId();
    }

    /**
     * 获取角色的菜单权限
     * @param id
     * @return
     */
    public List<Integer> selectMenuByRoleId(Integer id) {
        return baseDao.selectMenuByRoleId(id);
    }

    /**
     * 菜单授权提交
     * @param id    角色id
     * @param ids   菜单ids
     * @return
     */
    @Transactional
    public boolean insertRoleMenu(Integer id, List<Integer> ids) {
        //先删除之前的数据
        int i = baseDao.deleteMenuByRoleId(id);
        //添加新的数据
        if(ids==null||ids.size()<=0) return true;
        return baseDao.insertRoleMenu(id,ids)>0;
    }

    /**
     * 根据角色id删除用户关联表和菜单关联表
     * @param ids 删除的id列表
     * @return
     */
    @Transactional
    public int deleteByIds(List<Integer> ids) {
        int i = baseDao.deleteBatchIds(ids);
        int j = baseDao.deleteMenuByRoleIds(ids);
        int k = baseDao.deleteUserByRoleIds(ids);
        return i;
    }
}
